The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Some information handling systems, such as storage centers or other data storage systems or subsystems, comprising mass storage devices, such as but not limited to disk drives, solid state drives, or virtual disk drives allow the efficient storage of data by allocating user data across a pool of storage and a plurality of drives based on, for example, RAID-to-disk mapping. Data progression may be utilized in such systems to move data gradually to storage space of appropriate overall cost for the data, depending on, for example but not limited to, the data type or access patterns for the data. In addition, such drive systems may protect data from, for example, system failures or virus attacks by automatically generating and storing snapshots or point-in-time copies (PITCs) of the system or matrix of drive storage blocks at, for example, predetermined time intervals, user configured dynamic time stamps, such as, every few minutes or hours, etc., or at times directed by the server. These time-stamped snapshots permit the recovery of data from a previous point in time prior to the system failure, thereby restoring the system as it existed at that time. Such systems are further described in U.S. Pat. No. 7,613,945, titled “Virtual Disk Drive System and Method,” issued Nov. 3, 2009, U.S. Pat. No. 8,468,292, titled “Solid State Drive Data Storage System and Method,” issued Jun. 18, 2013, and U.S. patent application Ser. No. 13/429,511, titled “Single-Level Cell and Multi-Level Cell Hybrid Solid State Drive,” filed Mar. 26, 2012, each of which is incorporated by reference herein in its entirety.
One problem that may exist in such systems, however, is that in certain circumstances, a snapshot or PITC may unnecessarily consume space in a higher cost storage tier. For example, PITCs in any given system may be configured to expire after a certain amount of time or based on the occurrence of a specific event or number of events, etc. In many cases, after a PITC expires, it no longer needs to be stored in the system nor does it need to be available for users. However, if such an expired PITC has the active PITC (i.e., the current volume or PITC that handles write requests) as its child and coalescing with the active PITC is not permitted or is otherwise disabled, then the expired PITC will often be in a frozen state until another snapshot is taken before coalescing of the expired PITC is possible, thereby holding allocated pages of data hostage in a higher cost storage tier, resulting in unnecessary space consumption of the higher cost storage, which is often more desirably utilized for active data pages. FIG. 1, which shows an active PITC 102 and its parent PITC 104, illustrates the unnecessary resulting space consumption. In FIG. 1, a total of nine (9) data pages 106 are allocated between the active PITC 102 and the frozen PITC 104. That is, nine pages of data are currently allocated and unavailable for new writes. However, pages 1, 2, and 5 of the frozen PITC 104 have been “overwritten,” likely utilizing a copy-on-write algorithm, as pages 6, 7, and 9 in the active PITC, and as such, pages 1, 2, and 5 simply become historical data, which desirably may be stored in lower cost storage for historical purposes, such as but not limited to, backup purposes. Yet, because PITC 104 has the active PITC as its child and cannot be coalesced therewith, pages 1, 2, and 5 remain on high cost storage until another snapshot is generated, which depending on the system configuration or set-up, could be a significant span of time. Until another snapshot is generated, pages 1, 2, and 5 remain hostage, and cannot be reclaimed for better use of the space. Active PITCs, expiring PITCs, and coalescing PITCs are described in further detail in U.S. Pat. No. 7,613,945, previously incorporated by reference herein.
For additional cost, solid state device systems, either comprising or consisting entirely of solid state storage devices, such as SLC solid state drives (SSDs) and/or MLC SSDs, can provide better input/output (I/O) performance as compared to storage systems consisting of only disk drives. The read performance of SLC and MLC drives is essentially the same. However, SLC drives typically have faster write performance and can handle more write I/Os (i.e., have higher endurance or life span) as compared to MLC drives. Accordingly, SLC drives are typically more expensive than MLC drives. To balance cost, life span, and performance of a solid state device system, the system may be designed to have both SLC and MLC drives, as described in detail in U.S. Pat. No. 8,468,292 and U.S. patent application Ser. No. 13/429,511, which were previously incorporated by reference.
In such “hybrid” systems, SLC drive space may be preferred for new page write I/O (i.e., where the system allocates a new page(s)), but the system may move to MLC drive space when the SLC space becomes fully occupied. If the hybrid system utilizes data progression or automated tiering, then it could desirably move SLC pages that are part of snapshots or PITCs to lower cost tiers due to their lower usage, as described in U.S. Pat. No. 8,468,292 and U.S. patent application Ser. No. 13/429,511. However, if the hybrid system does not utilize data progression or automated tiering, or if the system has volumes that are snapshot capable but the system cannot or is not configured to take snapshots at regular or otherwise predetermined intervals to move pages to lower cost tiers, then such volumes will quickly and unnecessarily consume the SLC drive space as they continue to receive new page write I/Os. Thus, the system will be more quickly required to rely on MLC drive space for new page write I/Os. As this persists, it can reduce overall write performance of the system and more quickly wear out the MLC drives.
In some solid state device systems, data progression or automated tiering may usually move snapshot or PITC pages, due to their lower usage, to MLC drives or other lower cost tier(s) (e.g., disk drives, which may also be tiered), which can help free up SLC drive space. In such systems, however, if coalescing snapshot or frozen PITCs into an active PITC is enabled, then during coalesce, lower tier pages (if present) in a frozen PITC will be moved to the active PITC. As a result, any writes to those lower tier pages of the active PITC will likely be slower and degrade overall system performance. Additionally, frequent writes to the lower tier pages, if stored on MLC drive space, will more quickly wear out the MLC drive(s). If, on the other hand, the system is configured to move all lower tier pages of the active PITC (after a coalesce, for example) to a higher cost tier (such as a SLC tier) in order to improve performance, then this will increase space consumption in the higher cost tier, which could result with lower tier space being utilized for new page I/O, which could also reduce overall system performance. For example, the active PITC may not receive write requests for some or many of the pages moved from the lower cost tier to the higher cost tier, and thus the move would unnecessarily tie up higher tier drive space.
Thus, there is a need in the art for improved data progression in a data storage system. Particularly, there is a need in the art for methods and systems for generating snapshots, as at least a part of overall data progression, in an on-demand manner. More particularly, there is a need in the art for methods and systems for data progression in a data storage system having SLC and MLC devices or other hybrid or tiered-based storage, wherein snapshots are generated in an unconventional on-demand manner to move or progress data from SLC to MLC devices, or generally from one tier of storage to another lower cost tier, in a more desirable and efficient manner.